package 图形界面;

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.*;
import java.awt.event.*;
/**
 * @ClassName: Add2
 * @Auther: Drawin
 * @Date: 2021/11/22 23:28
 * @Description:
 */

public class Add2 extends JFrame implements ActionListener {
    /*
   编写加法程序
   窗口类本身实现ActionListener接口，将自己作为监听器
    */
    private JTextField txtNumber1=new JTextField(10);
    private JLabel lblFuHao=new JLabel("+");
    private JTextField txtNumber2=new JTextField(10);
    private JButton btnEqual=new JButton("=");
    private JTextField txtSum=new JTextField(10);
    public Add2(){
        setTitle("两个数相加的程序");
        initialize();//单独编写一个initialize方法，免得构造方法里代码太长

    }
    private void initialize(){
        setLayout(new FlowLayout());//设置窗口的布局为FlowLayout
        //把5个组件添加到窗口中；
        add(txtNumber1);
        add(lblFuHao);
        add(txtNumber2);
        add(btnEqual);
        add(txtSum);
        //窗口组装完毕，下面开始处理事件
        //窗口实现了ActionListener接口，可以注册成为Action事件的监听器
        btnEqual.addActionListener(this);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Add2 add = new Add2();
        add.setSize(500,100);
        add.setVisible(true);
        add.setLocationRelativeTo(null);//该代码能够让窗口居中
    }
    //Add2实现ACtionLIstener接口，必须实现actionPerformed方法
        public void actionPerformed(ActionEvent e){
            //当单击了等号按钮时自动执行该方法
            if(e.getSource()==btnEqual){//是"="按钮发生的ActionEvent
                if (txtNumber1.getText().trim().equals("")||txtNumber2.getText().trim().equals("")){
                    JOptionPane.showMessageDialog(this,
                            "加数和被加数都不能为空","提示信息",JOptionPane.INFORMATION_MESSAGE);
                    return;
                }
                double a,b,sum;
                try {
                    a=Double.valueOf(txtNumber1.getText());
                    b=Double.valueOf(txtNumber2.getText());
                    sum=a+b;
                    txtSum.setText(String.valueOf(sum));
                }catch (Exception ee){
                    JOptionPane.showMessageDialog(this,"加数和被加数都必须是数字"
                            ,"提示信息",JOptionPane.INFORMATION_MESSAGE);
                    return;
                }
            }
        }
    }
